1. Field of the Invention
This invention relates to raster image processing in printing systems, more particularly to such processing in a system with a main processor and several parallel processors.
2. Background of the Invention
Modem printing systems use some sort of processor to interpret a program representing the image to be printed. The program is written in a page description language (PDL) that describes the image on the page in a format that the processor can understand. The processor must then convert the page description into a format that is compatible with the actual printing hardware, called a raster bit-map. This is typically a two-step process. The first step is interpretation and the second is rasterization.
During interpretation the PDL is parsed and dictionaries are searched that allow translation of the PDL operators into paths. Paths are sets of graphical objects describing the outlines of graphical objects and are accompanied by fills. The graphical objects are usually described in terms of straight lines and parametric curves, such as bezier curves, splines, etc. A fill value is a single solid color that specifies the color of the fill area inside the outlines. Sometimes these fills occur through masks. In some cases, the fill value is not a single color but a scanned image.
Paths are transformed from source coordinate space to the device coordinate space, the device being the hardware of that particular printer. The paths are then reduced to polygons through a piece-wise linear approximation of any constituent parametric curves. The polygons are then further reduced to lower level primitives, such as trapezoids and/or run-arrays. The goal of all of this reduction is to simplify the second stage of the process, rasterization.
Other tasks are also performed during interpretation such as color conversion, decompression and outline font processing. Color conversion means converting data from source color space to device color space. Decompression is only necessary if the incoming image data is in a compressed format such as JPEG or LZW. Fonts are usually in outline form in which they are described in terms of straight lines and bezier curves, and must be converted into bitmap format at this stage.
The second stage of the process is rasterization. In this stage, the previously produced graphics primitives are scan converted, screened and rendered into the frame buffer of the print hardware. This is typically the most time consuming stage of the process, due to the high resolution required of most printing systems.
Current systems typically use one processor that has to perform all of the above tasks. These tasks are performed sequentially resulting in a slow and inefficient printing process. Therefore, a system and method is needed to allow more efficient and faster raster image processing for printing systems.
In accordance with embodiments of the invention, a page of print data is processed by a single-chip multiprocessor in three stages to convert the print data to a bit map. The term single-chip multiprocessor is used to describe the parallel processors used in the invention, which are all resident on the same semiconductor chip. The main processor may be on that same single chip or may be external to the chip having all of the parallel processors.
In the first stage, called language interpretation, the page description is converted to paths with accompanying fill and mask values. The paths and their fills and masks undergo geometry processing in the second stage. Geometry processing can be further broken down into two parallel stages: boundary processing and source data processing. During boundary processing the paths are segmented to low level primitives (triangles, trapezoids, etc.) Source data processing involves operations on fills and masks such as decompression, color conversion, outline font processing, etc. Finally the low level primitives are rasterized into a frame buffer, which is then sent to the print engine. In one embodiment of the invention, the frame buffer is segmented and used to allow the main processor and the parallel processors to render bands of the final image in parallel.
In a sort-first embodiment of the invention, the main processor creates the paths using some assistance from the parallel processors to accelerate the tasks. This is typically done by using a task queue, with all of the parallel processors eligible to assist. The parallel processors then perform the boundary processing part of geometry processing to convert the paths to primitives and the rasterization to send the data to the print engine. In an alternate sort-first embodiment, a subset of the parallel processors are dedicated to assisting in the language interpretation of a current page and a second subset performs the geometry processing and rasterization of the previous page.
In a sort-middle embodiment, the main processor sends the paths to geometry processing parallel processors which then send the primitives to the rasterization processors in a round-robin or queue manner. An alternate embodiment, the geometry processing parallel processors perform geometry processing for the current page and the rasterization processors work on the previous page. In a third embodiment, all of the parallel processors perform geometry and then rasterization processing on one page.